package siscom.modelos.DAO;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import siscom.database.GerenciadorConexoes;
import siscom.modelos.Marca;

/**
 *
 * @author Carlos Ribeiro
 */
public class MarcaDAO implements DAO<Marca> {

    private GerenciadorConexoes conexao = new GerenciadorConexoes();
    private PreparedStatement pstmt;

    @Override
    public void salvar(Marca instancia) throws SQLException {
        String query = "INSERT INTO marcas(marca) VALUES (?)";
        pstmt = conexao.getConnection().prepareStatement(query);
        pstmt.setString(1, instancia.getMarca());
        pstmt.execute();
        conexao.getConnection().commit();
        PreparedStatement ps = conexao.getConnection().prepareStatement(conexao.getConexao().getLastInsertID("marcas", "id_marca"));
        ResultSet rs = ps.executeQuery();
        rs.next();
        int id = rs.getInt(1);
        instancia.setIdMarca(id);
        ps.close();
        pstmt.close();
        
        
        
        
    }

    @Override
    public void atualizar(Marca instancia) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void salvarOuAtualizar(Marca instancia) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void excluir(Marca instancia) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean existe(Marca instancia) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public Marca selecionar(Marca instancia) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public List<Marca> selecionarTodos() throws SQLException{
        List<Marca> lista = new ArrayList<Marca>();
        String query = "SELECT * FROM marcas";
        pstmt = conexao.getConnection().prepareStatement(query);
        ResultSet rs = pstmt.executeQuery();
        while(rs.next()) {
            Marca marca = new Marca();
            marca.setIdMarca(rs.getInt("id_marca"));
            marca.setMarca(rs.getString("marca"));
            lista.add(marca);
        }
        return lista;
    }
}
